<?


function CheckValues(&$data)
{
    $err=false;
    
  if (!isset($data['parent'])) $data['parent']=-1;   
  $data['parent'] = str_replace('#','',$data['parent']);
  if (!is_numeric($data['parent']))  $err['parent']  = 'Не верно указан номер родительского отчета.';
  
       if (!isset($data['name']) || $data['name']=='')  $err['name']  = 'Не указано название отчета.';      
       
       
       $data['name'] = iconv('UTF-8', 'Windows-1251', $data['name']);
       
       
       if (!isset($data['sql']) || $data['sql']=='')  $err['sql']  = 'Не указан SQL-запрос.';      
       else
       {
        if (strpos($data['sql'],'dt')===false) $err['sql']  = 'В SQL-запросе не указано поле dt.';      
        if (strpos($data['sql'],'val')===false) $err['sql']  = 'В SQL-запросе не указано поле val.';      
        
        $data['sql'] = str_replace("\'", '"',$data['sql']);
         $data['sql'] = iconv('UTF-8', 'Windows-1251', $data['sql']);   
        
       }
                             
                                
     if (!isset($data['DivT'])) $data['DivT']='d';   
     $DivTs = array('y', 'k', 'm', 'w', 'd', 'h', '30min', '15min' ,'5min');
     if (!in_array($data['DivT'], $DivTs))  $err['DivT']  = 'Неверный тип дробления - '.$data['DivT'];      
     
     
     if (!isset($data['Operator'])) $data['Operator']='sum';   
     $Operators = array('sum','avg','min','max');
     if (!in_array($data['Operator'], $Operators))  $err['Operator']  = 'Неверный тип деления';      
     
     if (!isset($data['haveDetail'])) $data['haveDetail']='0';    
     $data['haveDetail'] = str_replace('on','1',$data['haveDetail']);
     $data['haveDetail'] = str_replace('off','0',$data['haveDetail']);
     
    if ($data['haveDetail']==1 && strpos($data['sql'],'det')===false ) $err['haveDetail']  = 'Выбрана детализация но в SQL не указано поле det.';
   
    return($err);
  
  
}
 
 if (!isset($_REQUEST['proc'])) return;
     
     
 switch ($_REQUEST['proc'])
 {
     case 'add':
                $err=CheckValues($_POST);
                if ($err!==false) return;
     
                $id=ReportMgr::AddReport($_POST);
                Header('Location: index.php?q='.$id);
                break;
                
     case 'edit':
                if (!($id=intval($_POST['id']))) return;
     
                $err=CheckValues($_POST);
                if ($err!==false) return;
                
                ReportMgr::UpdateReport($_POST);
                Header('Location: index.php?q='.$id);
                break;
                
     case 'del':
            
                if (!($id=intval($_REQUEST['q']))) return;
                
                ReportMgr::DelReport($id);
                Header('Location: index.php');
                
                break;
                
     
 }
 
 
 
 
    
?>
